Data centers as well as individual computer users may employ a utility, or Pay-Per-Use (PPU) model for allocating computer resources to workloads operating on the system. As used herein, a workload refers to any application, process, or group of processes that uses system resources. Resources may be allocated among workloads using a resource allocator, such as the HP-UX Workload Manager (WLM) product manufactured by Hewlett-Packard Company, to achieve service level objectives (SLOs) for workload operation. A PPU model allows a user to purchase a portion of a computer resource, such as central processing unit (CPU) resources, memory, disk bandwidth, network bandwidth, etc., rather than purchasing the entire computer system and its resources outright. The purchased resource might be expressed as a percent of total system resources. For example, a user who requires only 80% of the total CPU resources might purchase that amount.
PPU systems measure the actual utilization of the system resource by the user to ensure compliance with the purchased amount. Depending upon the configuration, the PPU system may bill the user periodically based on the actual usage, according to an agreement between the user and the provider of the system resources. Depending upon the implementation of the PPU model, it may be desirable to limit the user's utilization below the purchased amount. This may be desirable, for example, in implementations in which the user pays for actual utilization and wants to ensure that this utilization does not exceed a certain limit, or in which the user pays a fixed rate for a limited amount of resources and the resource provider wants to ensure that the user does not receive more resources than the user purchased.
A PPU model allows the user access to the resources and meters the use of the resources. In such a system, it is desirable to control system resource usage in order to prevent utilization from exceeding the amount of resources purchased. Using system resources under a PPU model without limiting that use is analogous to using a furnace without a thermostat. The user could be charged for unexpectedly high utilization of the resources.
A problem with allocating resources is accurately limiting and measuring the use of the resources. Existing resource allocators can only impose a fixed cap on resource allocation using a utilization block to prevent use of a designated portion of the resource. The utilization block prevents access to a fixed amount of resources, regardless of the workloads' actual usage requirements. However, such allocation systems are inherently inaccurate and may be undesirable in many cases. Existing resource allocators operate independently of PPU systems and do not control all workloads operating on the user's system that could be charged to the user under a PPU model. Existing resource allocators therefore cannot accurately limit allocation. For example, the resource allocator itself may require use of an operating system that consumes system resources such as CPU resources, and existing systems may not allow the resource allocator to limit allocation of resources to certain workloads, such as the operating system. As a result, a fixed entitlement available in existing resource allocators using a utilization block will not impose an accurate cap.
For example, if a workload executing on the system results in operating system activity that accounts for 10% of the total CPU resources, only the remaining 90% of the CPU resources is available to be reallocated. If a utilization block is used to block access to 20% of the available CPU resources, then the actual amount of the CPU resources available to the user's workloads after imposition of the utilization block is 72% (80% of 90% total resources). Combining the 72% available to the workloads with the 10% used by the operating system yields a total utilization of 82% of the system resources, rather than the 80% desired by the user. As a result, the user either pays for an additional 2% of the CPU resources, or the user receives 2% more resources than purchased under the PPU arrangement.
A fixed entitlement created by a utilization block is also inflexible. Depending upon the usage patterns, resource requirements of a user's workloads may fluctuate and may be generally well below the maximum cap purchased through the PPU system. It may be desirable under the PPU system for the user to purchase resources based on an average utilization rather than a fixed maximum limit. Under this average utilization PPU model, actual utilization may exceed the purchased cap, so long as average usage is below the purchased amount of resources. Systems using utilization blocks do not permit flexibility, but instead impose only a maximum cap.